﻿#ifndef __SS_MESH_H__
#define __SS_MESH_H__
#include "ssResDefine.h"
#include "ssResMesh.h"
#include "../opengl/vbo/ssBOBind.h"

namespace StarSeeker
{

class ssMesh : public ssIRes
{
public:
	ssMesh(const char* name);
	~ssMesh();
	//从文件加载

	bool LoadFromFile(const char* uri);
	//手动创建
	void CreateVertex(const ssfloat* pv, u32 count);
	void CreateIndex(u16 bit, const void* pi, u32 count);
	void CreateNormal(const ssfloat* pn, u32 count);
	void CreateTexture2d(const ssfloat* pt, u32 count);
	void CreateColor(const ssfloat* pc, u32 count);
	void CreateTangent(const ssfloat* pt, u32 count);

	ssVBOBind* GetVertexVBO();
	ssIBOBind* GetVertexIBO();
	ssVBOBind* GetNormalVBO();
	ssVBOBind* GetTexture2dVBO();
	ssVBOBind* GetColorVBO();
	ssVBOBind* GetTangentVBO();
private:
	ssResMesh				m_data;
	ssVBOBind				m_vertex;			//顶点数据
	ssIBOBind				m_index;			//顶点索引
	ssVBOBind				m_normal;			//顶点法线
	ssVBOBind				m_tangent;			//顶点切线
	ssVBOBind				m_texture;			//顶点纹理坐标
	ssVBOBind				m_color;			//顶点颜色

};

}
#endif
